// console.log('hello,welcome to vue')
import Vue from 'vue'
// 引入并配置路由模块
import VueRouter from 'vue-router'
Vue.use(VueRouter)

import VueResource from 'vue-resource'
Vue.use(VueResource)
// vue - VueResource设置请求的根路径
Vue.http.options.root = 'http://www.liulongbin.top:3005/api/'
// 设置全局post时表单数据格式的组织形式
Vue.http.options.emulateJSON = true

import app from './App.vue'


// 导入mint-ui中的组件
// import {
//   Header,
//   Swipe,
//   SwipeItem,
//   Button
// } from 'mint-ui'
// Vue.component(Header.name, Header)
// Vue.component(Swipe.name, Swipe);
// Vue.component(SwipeItem.name, SwipeItem);
// Vue.component(Button.name, Button)
// // 使用mint-ui的懒加载
// import {
//   Lazyload
// } from "mint-ui";
// Vue.use(Lazyload);
//全局导入并引入样式
import MintUI from 'mint-ui'
Vue.use(MintUI)
import 'mint-ui/lib/style.css'
//导入缩略图组件并注册
import VuePreview from 'vue-preview';
Vue.use(VuePreview);

// 注册全局时间过滤器
import moment from 'moment'
Vue.filter('dataFormat', function (datastr, pattern = "YYYY-MM-DD HH:mm:ss") {
  return moment(datastr).format(pattern)
})
// 去掉摘要中的符号
Vue.filter('datastrim', function (datastr) {
  return datastr.replace(/&amp;|emsp;/g, "")
})

import router from './router.js'

import './lib/mui/css/mui.min.css'
import './lib/mui/css/icons-extra.css'
import 'bootstrap/dist/css/bootstrap.min.css'


import Vuex from 'vuex'
Vue.use(Vuex)
var car = localStorage.getItem('car') || '[]';
const store = new Vuex.Store({
  state: {
    num: 1,
    // 购物车存储的数据，类型{id: 商品的id, count: 购买的数量, price: 商品单价, selected: false}
    car: JSON.parse(car)
  },
  mutations: {
    numChanged(state, num) {
      // console.log(num);
      state.num = num
    },
    addShopcar(store, data) {
      var flag = false;
      store.car.some(item => {
        if (item.id == data.id) {
          flag = true;
          item.count += data.count
        }
      })
      if (!flag) {
        store.car.push(data)
      }
      // console.log(store.car);
      // 每次加入购物车都吧数据给存到浏览器
      localStorage.setItem('car', JSON.stringify(store.car))
    },
    // 需要更新最新的值到localstorage中
    updateGoodsInfo(state, data) {
      state.car.some(item => {
        if (item.id == data.id) {
          item.count = parseInt(data.count)
          return true
        }
      })
      localStorage.setItem('car', JSON.stringify(state.car))
    },
    delGoodsInfo(state, id) {
      state.car.some((item, index) => {
        if (item.id == id) {
          state.car.splice(index, 1)
          return true
        }
      })
      localStorage.setItem('car', JSON.stringify(state.car))
    }
  },
  getters: {
    // 购物车上方的小红标识
    getAllCount(state) {
      var c = 0;
      state.car.forEach(item => {
        c += item.count
      })
      return c
    },
    getGoodsCount(state) {
      var o = {}
      state.car.forEach(item => {
        o[item.id] = item.count
      })
      return o
    }
  }
})
var vm = new Vue({
  el: "#app",
  render: h => h(app),
  router,
  store
})